home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / Form / Sources / ScrollEd.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  3.1 KB  |  95 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                ScrollEd.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Author:                Laurent Delamare
  7. //
  8. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  9. //
  10. //========================================================================================
  11.  
  12. #ifndef SCROLLED_H
  13. #define SCROLLED_H
  14.  
  15. #ifndef DEFINES_K
  16. #include "Defines.k"
  17. #endif
  18.  
  19. #ifndef FWEDVIEW_H
  20. #include "FWEdView.h"
  21. #endif
  22.  
  23. //==============================================================================
  24. // Forward Declarations
  25. //==============================================================================
  26.  
  27. class FW_CScrollBar;
  28. class FW_CNotification;
  29.  
  30. //==============================================================================
  31. // class CScrollEdit
  32. //==============================================================================
  33. // CScrollEdit adds scrolling & undo functionalities to FW_CEditView.
  34. // See CScrollEdit's documentation at the top of the .cpp file
  35.  
  36. class CScrollEdit : public FW_CEditView, public FW_MReceiver
  37. {
  38.   public:
  39.     FW_DECLARE_CLASS
  40.     FW_DECLARE_AUTO(CScrollEdit)
  41.  
  42.     // 1 step constructor
  43.     CScrollEdit(Environment* ev, 
  44.                 FW_CSuperView* container, 
  45.                 ODID viewId, 
  46.                 const FW_CRect& bounds,
  47.                 FW_CScrollBar* horzSB,
  48.                 FW_CScrollBar* vertSB,
  49.                 const FW_CString& text, 
  50.                 const FW_CFont& font = FW_kNormalFont,
  51.                 short maxChars = FW_MAXINT16, 
  52.                 unsigned short attributes = FW_CEditView::kDrawBox + 
  53.                                             FW_CEditView::kWordWrap + 
  54.                                             FW_CEditView::kAutoScroll,
  55.                 FW_Fixed textWidth = FW_kFixed0);
  56.  
  57.     // 2 steps constructor
  58.     CScrollEdit(Environment* ev);
  59.                     
  60.     virtual ~CScrollEdit();
  61.  
  62.     // ----- New API
  63.     void                 UpdateScrollParameters(Environment* ev);
  64.     void                 UpdateScrollUnits(Environment* ev);
  65.     void                 AdjustTE(Environment* ev);
  66.     void                AdjustTERects(Environment* ev);
  67.     void                AdjustScrollbar(Environment* ev, FW_XYSelector direction);
  68.     void                 Initialize(Environment* ev);
  69.  
  70.     // ----- Inherited API
  71.     virtual FW_Boolean    DoAdjustMenus (Environment *ev, FW_CMenuBar* menuBar, 
  72.                                 FW_Boolean hasMenuFocus, FW_Boolean isRoot);
  73.     virtual FW_Boolean     DoMenu (Environment* ev, const FW_CMenuEvent& event);
  74.     virtual FW_Boolean     DoMouseDown (Environment* ev, const FW_CMouseEvent& event);
  75.     virtual FW_Boolean     DoVirtualKey (Environment* ev, const FW_CVirtualKeyEvent & event);
  76.     virtual FW_Boolean     DoCharKey (Environment* ev, const FW_CCharKeyEvent& event);
  77.     virtual void         HandleNotification(Environment* ev, const FW_CNotification& notification);
  78.     virtual void         SizeChanged (Environment* ev, const FW_CPoint& oldSize);
  79.     virtual void         SetText (Environment * ev, const FW_CString& str);
  80.  
  81.     // ----- Archiving -----
  82.     static void*        Create(FW_CReadableStream& stream, FW_ClassTypeConstant type);
  83.     static void            Destroy(void* object, FW_ClassTypeConstant type);
  84.     virtual void        Flatten(Environment* ev, FW_CWritableStream& stream) const;
  85.     virtual void        InitializeFromStream(Environment* ev, FW_CReadableStream& stream);
  86.  
  87.   private:
  88.       FW_CScrollBar*         fScrollbars[2];        // vert & horz scrollbars (may be NULL)
  89.     FW_Fixed            fWidth;                // text width
  90. };
  91.  
  92.  
  93.  
  94. #endif
  95.